返回值统一格式: { msg : {}, info : "", code : int } #todo 人脸识别错误(注册、访客变更员工)时保护业务数据的问题 # Request考虑socket直接和人脸识别服务器交互 # API安全 0.1交换authorizationID Request: { authorizationID: "aaaaa" } Response: { registerCompanyID : 1, placeID : 1 companyName : "aaa", placeLabel: "aaaaa" } 0.2注册设备地点 Request: { placeLabel: "aaaaa" } Response: { placeID : 1 } 1. 实时监控 1.1. 人员分类分类列表(VisitorType) Request: { } Response: [ { ID : "label" } ] 1.2. ImageTypeID 1.2. StatusID 1.3. 人脸识别 通过图像获得faceID Request: { registerCompanyID : 123, // 若为-1则只搜索VisitFaceDB imgs : [ "image base64" ] // 对应多个人的人脸图像 } Response: [ { registerCompanyID : 123, //找不到返回VisitDBFaceID,此项为-1 faceID : 1, isVisitDBFaceID : false, // : true, : false srcImgIdx : 1, srcImgPosX : 123, srcImgPosY : 456, srcImgPosW : 123, srcImgPosH : 456 }, { faceID : -1, // 搜索无结果 } ] 1.4. 人脸总体信息查询 通过faceID获得Person简要信息 需要支持批量查询 Request: { companyID : 123, faceID : 123, isVisitDBFaceID : false // 如果为true则忽略companyID,faceID认为是visitDBFaceID } Response: { personID : 123, // 无效值表示没有对应的人ID personTypeID : 1, // 人员分类列表 visitStatusID : 1, // 访问状态 name : "name", checkingCompany : [123, 456], // 考勤公司ID列表 warning : false // 是否为警告 } 1.5. 访客注册(见2 人员注册) 1.6. 更改人员考勤状态(签到、签退、签离) 需要支持批量查询 Request: { placeID : 123, personID : 123, visitStatusID : 1 // 设置访问状态 } Response: 成功/错误结果 1.6.1. 人脸识别及状态修改 整合:通过人脸图像,完成状态修改,返回当前状态 (整合1.3. 1.4. 1.6.) Request: { placeID : 123, // 若为-1则只搜索VisitFaceDB visitStatusID : 1 // 签到、签退/签离 imgs : [ "image base64" ] // 对应多个人的人脸图像 } Response: [ { personID : 123, visitStatusID : 1 // 更新之后的访问状态 }, { faceID : -1, // 人脸搜索无结果 }, { //业务错误: 9.1. 通用成功/错误结果 } ] 1.7. 查询人员来访/签到状态 需要支持批量查询 Request: { companyID : 1, personID : 123, } Response: { visitStatusID : 1 // 访问状态 } 1.8. 更改人员来访状态(来访登记) 见3 添加来访记录 2. 人员注册 2.1. 国籍列表 2.2. 证件类型 2.3. 注册人员 Request: { registerCompanyID : 123, name : "", companyName : "", // ... imgIdentity : "image base64" } Response: { companyID : 123, personID : 123 } 2.4. 注册人脸 Request: { registerCompanyID : 123, personID : 123, imgs : [ "image base64" ] // 对应一个人的若干个人脸图像 } Response: { faceIDs : [ 123 ] } 3. 来访登记 3.1. 获得来访人员列表 返回按姓名缩写升序的结果 Request: { companyID : 123, // 设备所在学校ID beginPage : 0, endPage : 0 } Response: [ { personID : 123, name : "aaa", img : "image url" // 非字符串表示使用默认图标 } ] 3.2. 获得被访人员列表 返回按姓名缩写升序的结果 Request: { companyID : 123, beginPage : 0, endPage : 0 } Response: [ { personID : 123, name : "aaa", department : "aaa", img : "image url" // 非字符串表示使用默认图标 } ] 3.2. 搜索 (3. 4. 5. 6.) 来访人员,如果没有给出搜索字段时,显示本校曾经来访人员列表VisitStat;如果给出关键字,则搜索全部人员 被访人员,本公司员工列表 Request: { registerCompanyID : 123, isVisitor : true beginPage : 0, endPage : 0, nameSpell : "" } Response: { } #todo 被访考虑和人员列表合并 3.3. 获得来访/被访人员详细信息(visitor/visitee) Request: { personID : 123, isVisitor : true } Response: { companyID : 123, name : "aaa", companyName : "", department : "aaa", img : "image url" // 非字符串表示使用默认图标 // ... } 3.4. 添加来访记录 Request: { placeID : 123, visitorPersonID : 123, visiteePersonID : 123, matter : "aaa", // 数字表示使用预定义标签ID remark : "" } Response: 成功/错误结果 3.5. 获得拜访事由选项列表 Request: { } Response: [ { ID : "label" } ] 4. 电话呼叫 4.1. 获得人员列表(同被访人员列表) 4.2. 添加呼叫记录 5. 访客管理 5.1. 获得来访列表 Request: { companyID : 123, beginDt : "", endDt : "" } Response: [ { visitID : 1, visitorPersonID : 123, visitorName : "", lastStatusID : 1, dt : "" } ] 5.2. 访客信息 5.2. 获得来访详细信息 Request: { visitID : 1 } Response: { visitorPersonID visitorName : "", // ... visiteePersonID : 123, // ... imgChar : "image url", imgIdentity : "image url" } 6. 考勤记录 6.1. 获得考勤列表 根据日期、personID聚类 Request: { companyID : 123, beginDt : "", endDt : "" } Response: [ { personID : 123, name : "", lastStatusID : 1, dt : "" } ] 6.2. 获得考勤详细信息 Request: { personID : 123 beginDt : "", endDt : "" } Response: { { id : 123, place : "", // ... } } 6.2. 返回人员详细信息API 见 3.3. 7. 配置 8. 其他实体操作 9. 总体接口 9.1. 通用成功/错误结果 Response: { errcode : 0, // 0表示执行成功,否则为失败错误代码 msg:"aaaaa" // 执行结果附加消息 }